home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 48 / Amiga Format CD48 (1999-12-13)(Future Publishing)(GB)(Track 1 of 2)[!][issue 2000-01].iso / -serious- / misc / datelib / developer / modula / defs / datel.def < prev   
Text File  |  1999-11-01  |  16KB  |  155 lines

  1. (*
  2. **
  3. ** Copyright © 1996-1999 Dipl.-Inform. Kai Hofmann. All rights reserved.
  4. ** Registered Amiga shared library!
  5. **
  6. ** $VER: DateL.def 33.310 (16.06.99)
  7. **
  8. ** Experimental version, please report bugs/improvements!
  9. *)
  10.  
  11.  DEFINITION MODULE DateL {"date.library",33};
  12.  
  13.  
  14.  FROM SYSTEM IMPORT ADDRESS;
  15.  IMPORT d:DateD,R;
  16.  
  17.  
  18.  VAR
  19.    dateVersion : INTEGER;
  20.    dateBase    : d.DateBasePtr;
  21.  
  22.  
  23.  CONST
  24.    dateMinVersion  = 33;
  25.    dateMinRevision = 310;
  26.    dateName        = "date.library";
  27.  
  28.  
  29.  PROCEDURE TimeToJD(hour{R.D0}, min{R.D1}, sec{R.D2} : SHORTCARD) : REAL; CODE -294;
  30.  PROCEDURE JDToTime(jd{R.D0} : REAL; VAR rhour{R.A0}, rmin{R.A1}, rsec{R.A2} : SHORTCARD); CODE -300;
  31.  PROCEDURE TimeZoneFactor(degree{R.D0} : SHORTINT) : SHORTINT; CODE -318;
  32.  PROCEDURE LMT(secs {R.D0} : LONGCARD; meridiandegree{R.D1} : REAL; posdegree {R.D2} : REAL) : LONGINT; CODE -324;
  33.  PROCEDURE TimeToSec(hour{R.D0}, min{R.D1}, sec{R.D2} : SHORTCARD) : LONGCARD; CODE -330;
  34.  PROCEDURE SecToTime(secs{R.D0} : LONGCARD; VAR hour{R.A0}, min{R.A1}, sec{R.A2} : SHORTCARD); CODE -336;
  35.  PROCEDURE Compare2Times(hour1{R.D0}, min1{R.D1}, sec1{R.D2}, hour2{R.D3}, min2{R.D4}, sec2{R.D5} : SHORTCARD) : SHORTINT; CODE -426;
  36.  PROCEDURE ValidTime(hour{R.D0}, min{R.D1}, sec{R.D2} : SHORTCARD) : BOOLEAN; CODE -438;
  37.  PROCEDURE TimeDiff(hour1{R.D0}, min1{R.D1}, sec1{R.D2}, hour2{R.D3}, min2{R.D4}, sec2{R.D5} : SHORTCARD) : LONGINT; CODE -468;
  38.  PROCEDURE DiffTime(hour{R.D0}, min{R.D1}, sec{R.D2} : SHORTCARD; diffsecs{R.D3} : LONGINT; VAR rhour{R.A0}, rmin{R.A1}, rsec{R.A2} : SHORTCARD); CODE -474;
  39.  PROCEDURE FormatTime(fmt{R.A0} : ADDRESS; ChangeDay{R.D0} : d.ChangeDay; ChangeHour{R.D1} : SHORTCARD; DST{R.D2} : BOOLEAN; hour{R.D3}, min{R.D4}, sec{R.D5} : SHORTCARD; zonemin{R.D6} : SHORTINT; tstr{R.A1} : ADDRESS); CODE -498;
  40.  PROCEDURE ParseTime(fmt{R.D0}, tstr{R.D1} : ADDRESS; ChangeDay{R.D2} : d.ChangeDay; ChangeHour{R.D3} : SHORTCARD; VAR DST{R.D4} : BOOLEAN; hour{R.A0}, min{R.A1}, sec{R.A2} : SHORTCARD; VAR zonemin{R.A3} : SHORTINT; pfmt{R.D5} : ADDRESS) : SHORTINT; CODE -504;
  41.  PROCEDURE TimeToNum(hour{R.D0}, min{R.D1}, sec{R.D2} : SHORTCARD) : LONGCARD; CODE -594;
  42.  PROCEDURE NumToTime(num{R.D0}: LONGCARD; rhour{R.A0}, rmin{R.A1}, rsec{R.A2} : SHORTCARD); CODE -600;
  43.  
  44.  PROCEDURE JulianLeapYear   (year{R.D0} : LONGINT) : BOOLEAN; CODE -30;
  45.  PROCEDURE GregorianLeapYear(year{R.D0} : LONGINT) : BOOLEAN; CODE -36;
  46.  PROCEDURE HeisLeapYear     (year{R.D0} : LONGINT) : BOOLEAN; CODE -42;
  47.  PROCEDURE JulianMonthDays   (month{R.D0} : SHORTCARD; year{R.D1} : LONGINT) : SHORTCARD; CODE -48;
  48.  PROCEDURE GregorianMonthDays(month{R.D0} : SHORTCARD; year{R.D1} : LONGINT) : SHORTCARD; CODE -54;
  49.  PROCEDURE HeisMonthDays     (month{R.D0} : SHORTCARD; year{R.D1} : LONGINT) : SHORTCARD; CODE -60;
  50.  PROCEDURE JulianYearDays   (year{R.D0} : LONGINT) : CARDINAL; CODE -66;
  51.  PROCEDURE GregorianYearDays(year{R.D0} : LONGINT) : CARDINAL; CODE -72;
  52.  PROCEDURE HeisYearDays     (year{R.D0} : LONGINT) : CARDINAL; CODE -78;
  53.  PROCEDURE Compare2Dates(day1{R.D0}, month1{R.D1} : SHORTCARD; year1{R.D2} : LONGINT; day2{R.D3}, month2{R.D4} : SHORTCARD; year2{R.D5} : LONGINT) : SHORTINT; CODE -420;
  54.  PROCEDURE JulianDayDiff   (day1{R.D0}, month1{R.D1} : SHORTCARD; year1{R.D2} : LONGINT; day2{R.D3}, month2{R.D4} : SHORTCARD; year2{R.D5} : LONGINT) : LONGINT; CODE -120;
  55.  PROCEDURE GregorianDayDiff(day1{R.D0}, month1{R.D1} : SHORTCARD; year1{R.D2} : LONGINT; day2{R.D3}, month2{R.D4} : SHORTCARD; year2{R.D5} : LONGINT) : LONGINT; CODE -126;
  56.  PROCEDURE HeisDayDiff     (day1{R.D0}, month1{R.D1} : SHORTCARD; year1{R.D2} : LONGINT; day2{R.D3}, month2{R.D4} : SHORTCARD; year2{R.D5} : LONGINT) : LONGINT; CODE -132;
  57.  PROCEDURE JulianWeekday   (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : d.Weekdays; CODE -138;
  58.  PROCEDURE GregorianWeekday(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : d.Weekdays; CODE -144;
  59.  PROCEDURE HeisWeekday     (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : d.Weekdays; CODE -150;
  60.  PROCEDURE JulianDaysBeforeWeekday   (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; weekday{R.D3} : d.Weekdays) : SHORTCARD; CODE -156;
  61.  PROCEDURE GregorianDaysBeforeWeekday(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; weekday{R.D3} : d.Weekdays) : SHORTCARD; CODE -162;
  62.  PROCEDURE HeisDaysBeforeWeekday     (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; weekday{R.D3} : d.Weekdays) : SHORTCARD; CODE -168;
  63.  PROCEDURE JulianDaysAfterWeekday    (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; weekday{R.D3} : d.Weekdays) : SHORTCARD; CODE -174;
  64.  PROCEDURE GregorianDaysAfterWeekday (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; weekday{R.D3} : d.Weekdays) : SHORTCARD; CODE -180;
  65.  PROCEDURE HeisDaysAfterWeekday      (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; weekday{R.D3} : d.Weekdays) : SHORTCARD; CODE -186;
  66.  PROCEDURE JulianDiffDate   (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; days{R.D3} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -192;
  67.  PROCEDURE GregorianDiffDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; days{R.D3} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -198;
  68.  PROCEDURE HeisDiffDate     (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; days{R.D3} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -204;
  69.  PROCEDURE JYearToScaliger(year{R.D0} : LONGINT) : CARDINAL; CODE -210;
  70.  PROCEDURE GYearToScaliger(year{R.D0} : LONGINT) : CARDINAL; CODE -216;
  71.  PROCEDURE HYearToScaliger(year{R.D0} : LONGINT) : CARDINAL; CODE -222;
  72.  PROCEDURE ScaligerYearToJ(syear{R.D0} : CARDINAL) : LONGINT; CODE -228;
  73.  PROCEDURE ScaligerYearToG(syear{R.D0} : CARDINAL) : LONGINT; CODE -234;
  74.  PROCEDURE ScaligerYearToH(syear{R.D0} : CARDINAL) : LONGINT; CODE -240;
  75.  PROCEDURE JSYearToJD(syear{R.D0} : CARDINAL) : LONGCARD; CODE -246;
  76.  PROCEDURE GSYearToJD(syear{R.D0} : CARDINAL) : LONGCARD; CODE -252;
  77.  PROCEDURE HSYearToJD(syear{R.D0} : CARDINAL) : LONGCARD; CODE -258;
  78.  PROCEDURE JDtoMJD(jd{R.D0} : LONGCARD) : LONGCARD; CODE -264;
  79.  PROCEDURE MJDtoJD(mjd{R.D0} : LONGCARD) : LONGCARD; CODE -270;
  80.  PROCEDURE JulianToJD   (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : LONGCARD; CODE -276;
  81.  PROCEDURE GregorianToJD(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : LONGCARD; CODE -282;
  82.  PROCEDURE HeisToJD     (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : LONGCARD; CODE -288;
  83.  PROCEDURE GregorianMoonAge(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : SHORTCARD; CODE -306;
  84.  PROCEDURE JulianEaster   (year{R.D0} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD); CODE -402;
  85.  PROCEDURE GregorianEaster(year{R.D0} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD); CODE -312;
  86.  PROCEDURE HeisEaster     (year{R.D0} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD); CODE -408;
  87.  PROCEDURE JulianWeek   (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : SHORTCARD; CODE -342;
  88.  PROCEDURE GregorianWeek(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : SHORTCARD; CODE -348;
  89.  PROCEDURE HeisWeek     (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : SHORTCARD; CODE -354;
  90.  PROCEDURE WeekdayText     (wday{R.D0} : d.Weekdays; wtext{R.A0} : ADDRESS; lang{R.D1} : d.Languages) : SHORTCARD; CODE -360;
  91.  PROCEDURE WeekdayShortText(wday{R.D0} : d.Weekdays; wtext{R.A0} : ADDRESS; lang{R.D1} : d.Languages) : SHORTCARD; CODE -372;
  92.  PROCEDURE MonthText     (month{R.D0} : SHORTCARD; mtext{R.A0} : ADDRESS; lang{R.D1} : d.Languages) : SHORTCARD; CODE -366;
  93.  PROCEDURE MonthShortText(month{R.D0} : SHORTCARD; mtext{R.A0} : ADDRESS; lang{R.D1} : d.Languages) : SHORTCARD; CODE -378;
  94.  PROCEDURE DateText(text{R.D0} : d.DateTexts; mtext{R.A0} : ADDRESS; lang{R.D1} : d.Languages; wc{R.D2} : d.WordClass); CODE -432;
  95.  PROCEDURE JDToJulian   (jd{R.D0} : LONGCARD; VAR day{R.A0}, month{R.A1} : SHORTCARD; VAR year{R.A2} : LONGINT); CODE -384;
  96.  PROCEDURE JDToGregorian(jd{R.D0} : LONGCARD; VAR day{R.A0}, month{R.A1} : SHORTCARD; VAR year{R.A2} : LONGINT); CODE -390;
  97.  PROCEDURE JDToHeis     (jd{R.D0} : LONGCARD; VAR day{R.A0}, month{R.A1} : SHORTCARD; VAR year{R.A2} : LONGINT); CODE -396;
  98.  PROCEDURE GregorianMoonPhase(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; phase{R.D3} : d.MoonPhases) : LONGCARD; CODE -414;
  99.  PROCEDURE ValidJulianDate   (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : BOOLEAN; CODE -444;
  100.  PROCEDURE ValidGregorianDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : BOOLEAN; CODE -450;
  101.  PROCEDURE ValidHeisDate     (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : BOOLEAN; CODE -456;
  102.  PROCEDURE SetCountry(country{R.D0} : d.Countries); CODE -462;
  103.  PROCEDURE SetFirstWeekday(weekday{R.D0} : d.Weekdays); CODE -480;
  104.  PROCEDURE SupplementCentury(year{R.D0} : SHORTCARD; actualyear{R.D1} : LONGINT) : LONGINT; CODE -486;
  105.  PROCEDURE JulianLastMonthDay(month{R.D0} : SHORTCARD; year{R.D1} : LONGINT) : SHORTCARD; CODE -510;
  106.  PROCEDURE GregorianLastMonthDay(month{R.D0} : SHORTCARD; year{R.D1} : LONGINT) : SHORTCARD; CODE -516;
  107.  PROCEDURE HeisLastMonthDay(month{R.D0} : SHORTCARD; year{R.D1} : LONGINT) : SHORTCARD; CODE -522;
  108.  PROCEDURE NextValidJulianDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -528;
  109.  PROCEDURE NextValidGregorianDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -534;
  110.  PROCEDURE NextValidHeisDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -540;
  111.  PROCEDURE PreviousValidJulianDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -546;
  112.  PROCEDURE PreviousValidGregorianDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -552;
  113.  PROCEDURE PreviousValidHeisDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -558;
  114.  PROCEDURE FormatDate(fmt{R.A0} : ADDRESS; day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; lang{R.D3} : d.Languages; tstr{R.A1} : ADDRESS); CODE -564;
  115.  PROCEDURE ParseDate(fmt{R.D0}, dstr{R.D1} : ADDRESS; lang{R.D2} : d.Languages; calendar{R.D3} : d.Calendars; actualjd{R.D4} : LONGCARD; VAR day{R.A0}, month{R.A1} : SHORTCARD; VAR year{R.A2} : LONGINT; pfmt{R.A3} : ADDRESS; VAR plang{R.D5} : d.Languages;) : SHORTINT; CODE -570;
  116.  PROCEDURE JulianWWtoDM(weekday{R.D0} : d.Weekdays; week{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -576;
  117.  PROCEDURE GregorianWWtoDM(weekday{R.D0} : d.Weekdays; week{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -582;
  118.  PROCEDURE HeisWWtoDM(weekday{R.D0} : d.Weekdays; week{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -588;
  119.  PROCEDURE DateToNum(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : LONGINT; CODE -606;
  120.  PROCEDURE NumToDate(num{R.D0} : LONGINT; VAR day{R.A0}, month{R.A1} : SHORTCARD; VAR year{R.A2} : LONGINT); CODE -612;
  121.  PROCEDURE JulianDiffDateRange   (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; days{R.D3}, months{R.D4}, years{R.D5} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -618;
  122.  PROCEDURE GregorianDiffDateRange(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; days{R.D3}, months{R.D4}, years{R.D5} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -624;
  123.  PROCEDURE HeisDiffDateRange     (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; days{R.D3}, months{R.D4}, years{R.D5} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -630;
  124.  PROCEDURE JulianRangeDiff   (day1{R.D0}, month1{R.D1} : SHORTCARD; year1{R.D2} : LONGINT; day2{R.D3}, month2{R.D4} : SHORTCARD; year2{R.D5} : LONGINT; VAR days{R.A0}, months{R.A0} : SHORTINT; VAR years{R.A2} : LONGINT); CODE -636;
  125.  PROCEDURE GregorianRangeDiff(day1{R.D0}, month1{R.D1} : SHORTCARD; year1{R.D2} : LONGINT; day2{R.D3}, month2{R.D4} : SHORTCARD; year2{R.D5} : LONGINT; VAR days{R.A0}, months{R.A0} : SHORTINT; VAR years{R.A2} : LONGINT); CODE -642;
  126.  PROCEDURE HeisRangeDiff     (day1{R.D0}, month1{R.D1} : SHORTCARD; year1{R.D2} : LONGINT; day2{R.D3}, month2{R.D4} : SHORTCARD; year2{R.D5} : LONGINT; VAR days{R.A0}, months{R.A0} : SHORTINT; VAR years{R.A2} : LONGINT); CODE -648;
  127.  
  128.  PROCEDURE LeapYear(year{R.D0} : LONGINT; calendar{R.D1} : d.Calendars) : BOOLEAN; CODE -666;
  129.  PROCEDURE MonthDays(month{R.D0} : SHORTCARD; year{R.D1; calendar{R.D2} : d.Calendars} : LONGINT) : SHORTCARD; CODE -672;
  130.  PROCEDURE YearDays(year{R.D0} : LONGINT; calendar{R.D1} : d.Calendars) : CARDINAL; CODE -684;
  131.  PROCEDURE DayDiff(day1{R.D0}, month1{R.D1} : SHORTCARD; year1{R.D2} : LONGINT; day2{R.D3}, month2{R.D4} : SHORTCARD; year2{R.D5} : LONGINT; calendar{R.D6} : d.Calendars) : LONGINT; CODE -690;
  132.  PROCEDURE Weekday(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; calendar{R.D3} : d.Calendars) : d.Weekdays; CODE -696;
  133.  PROCEDURE DaysBeforeWeekday(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; weekday{R.D3} : d.Weekdays; calendar{R.D4} : d.Calendars) : SHORTCARD; CODE -702;
  134.  PROCEDURE DaysAfterWeekday (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; weekday{R.D3} : d.Weekdays; calendar{R.D4} : d.Calendars) : SHORTCARD; CODE -708;
  135.  PROCEDURE YearToScaliger(year{R.D0} : LONGINT; calendar{R.D1} : d.Calendars) : CARDINAL; CODE -714;
  136.  PROCEDURE ScaligerYearToYear(syear{R.D0} : CARDINAL; calendar{R.D1} : d.Calendars) : LONGINT; CODE -720;
  137.  PROCEDURE SYearToJD(syear{R.D0} : CARDINAL; calendar{R.D1} : d.Calendars) : LONGCARD; CODE -726;
  138.  PROCEDURE DateToJD(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; calendar{R.D3} : d.Calendars) : LONGCARD; CODE -732;
  139.  PROCEDURE Easter(year{R.D0} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; calendar{R.D1} : d.Calendars); CODE -738;
  140.  PROCEDURE Week(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; calendar{R.D3} : d.Calendars) : SHORTCARD; CODE -744;
  141.  PROCEDURE JDToDate(jd{R.D0} : LONGCARD; VAR day{R.A0}, month{R.A1} : SHORTCARD; VAR year{R.A2} : LONGINT; calendar{R.D1} : d.Calendars); CODE -750;
  142.  PROCEDURE ValidDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; calendar{R.D3} : d.Calendars) : BOOLEAN; CODE -756;
  143.  PROCEDURE LastMonthDay(month{R.D0} : SHORTCARD; year{R.D1} : LONGINT; calendar{R.D2} : d.Calendars) : SHORTCARD; CODE -678;
  144.  PROCEDURE NextValidDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT; calendar{R.D3} : d.Calendars); CODE -762;
  145.  PROCEDURE PreviousValidDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT; calendar{R.D3} : d.Calendars); CODE -768;
  146.  PROCEDURE WWtoDM(weekday{R.D0} : d.Weekdays; week{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT; calendar{R.D3} : d.Calendars); CODE -774;
  147.  PROCEDURE DiffDateRange(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; days{R.D3}, months{R.D4}, years{R.D5} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT; calendar{R.D6} : d.Calendars); CODE -780;
  148.  PROCEDURE RangeDiff(day1{R.D0}, month1{R.D1} : SHORTCARD; year1{R.D2} : LONGINT; day2{R.D3}, month2{R.D4} : SHORTCARD; year2{R.D5} : LONGINT; VAR days{R.A0}, months{R.A0} : SHORTINT; VAR years{R.A2} : LONGINT; calendar{R.D6} : d.Calendars); CODE -786;
  149.  
  150.  
  151.  PROCEDURE LocalToGMT(ljd{R.D0}, lsecs{R.D1} : LONGCARD; DST{R.D2} : BOOLEAN; zonemin{R.D3} : SHORTINT; VAR gjd{R.A0}, gsecs{R.A1} : LONGCARD); CODE -654;
  152.  PROCEDURE GMTToLocal(gjd{R.D0}, gsecs{R.D1} : LONGCARD; zonemin{R.D2} : SHORTINT; ChangePrevDay{R.D3}, ChangeDay{R.D4}, ChangeNextDay{R.D5} : d.ChangeDay; ChangeHour{R.D6} : SHORTCARD; VAR ljd{R.A0}, lsecs{R.A1} : LONGCARD; VAR DST{R.A2} : BOOLEAN); CODE -660;
  153.  
  154.  END DateL.lib33
  155.